#include<iostream>
using namespace std;

class Solution {
public:
    int is_alpha_digit(string &s, int i) {
        if (s[i] >= 'A' && s[i] <= 'Z') {
            return s[i] + 32;
        } else if (s[i] >= 'a' && s[i] <= 'z') {
            return s[i]; 
        } else if (s[i] >= '0' && s[i] <= '9') {
            return s[i];
        } else {
            return -1;
        }
    }
    bool isPalindrome(string s) {
        int i = 0, j = s.length() - 1;
        while (i < j) {
            while (i < s.length() && is_alpha_digit(s, i) == -1) {
                i++;
            }
            while (j >= 0 && is_alpha_digit(s, j) == -1) {
                j--;
            }

            if (i >= s.length() || j < 0) break;

            if (is_alpha_digit(s, i) != is_alpha_digit(s, j)) {
                return false;
            }

            i++;
            j--;
        }
        return true;
    }
};

/**
 * 2023.4.14
*/